In propagate_event_{down,up}(), set handled_event to TRUE if a widget is
unrealized, so as to terminate the corresponding loop early.
See https://gitlab.gnome.org/GNOME/gtk/merge_requests/442
else if (gtk_widget_get_realized (widget))
handled_event = gtk_widget_event (widget, event);
+ handled_event |= !gtk_widget_get_realized (widget);
+
tmp = gtk_widget_get_parent (widget);
g_object_unref (widget);
}
else if (gtk_widget_get_realized (widget))
handled_event = _gtk_widget_captured_event (widget, event);
+
+ handled_event |= !gtk_widget_get_realized (widget);
}
g_list_free_full (widgets, (GDestroyNotify)g_object_unref);